A wireless network typically includes several nodes that communicate with one another over wireless communication links (for example, over radio frequency communication links). One type of wireless network is a wireless sensor network in which one or more of the nodes are “sensor nodes” (also referred to here as “wireless sensor nodes”). Each sensor node incorporates (or is otherwise coupled to) a sensor. Each sensor is capable of generating a value that, at any given point in time, is indicative of some physical attribute of interest. In one configuration, the sensor nodes are battery powered and have limited computational resources (for example, limited memory and processing capability).
Data is typically retrieved from a wireless sensor network by querying the wireless sensor network for such data. Data specified in a query is retrieved from (or is otherwise generated at) one or more nodes in the wireless sensor network. The retrieved and/or generated data is returned to a recipient specified in the query.
A query can specify that various types of data are to be retrieved and/or that various types of operations are to be performed. One type of operation that can be specified in a query is an “aggregation operation” (also referred to here as “data aggregation” or “aggregation”). An aggregation operation generates a value as a function of multiple items of data. Each of the items of data is also referred to here individually as an “input item” and collectively as “input items” or “input data”. The multiple items of data can comprise multiple values from a single data source and/or can comprise values from multiple data sources. Examples of data aggregation operations include an “average” operation that calculates the average of the input data, a “minimum” operation that determines the value of a minimum input item, and a “maximum” operation that determines the value of a maximum input item.
In one such configuration, a particular node in the wireless sensor network is selected to perform each aggregation operation. Such a node is also referred to here as an “aggregation node.” The aggregation node receives input data from other nodes in the wireless sensor network (if necessary) and then performs the aggregation operation on the received input data. However, if the aggregation node should fail or otherwise be unable to perform the aggregation operation or communicate with other nodes in the wireless sensor network, such a query will fail.
The failure of a node can also impact other processing that is performed in a wireless network (for example, a wireless sensor network). For example, in one configuration, a wireless network is logically arranged into a set of clusters. A node in each cluster is designated as the “head” node or “cluster head” for that node. For a given cluster, the cluster head tracks which nodes are members of that cluster and routes inter-cluster packets. In the event that a cluster head fails or is otherwise unable to perform the cluster head processing for that cluster, the performance of the wireless network is impaired (for example, until the failure is detected and a new cluster head becomes operational).
Such failures are of especial concern in wireless sensor networks that include batter-powered nodes and/or that make use of an ad-hoc configuration.